package servidor;

import java.io.*;
import java.net.*;

public class Main
{
	public static void main(String[] args)
	{
		// numero da porta para fazer a conexao
		int porta = 8091;
        
		// nome do diretório que irá conter o site
        File diretorioDoSite = new File("localhost");
        
        // testa se diretório localhost não existe
        if (!diretorioDoSite.exists()&&!diretorioDoSite.isDirectory())
        {
            System.out.println("Não existe um diretório ["
            + diretorioDoSite.getAbsolutePath()+ " ] \nCrie um diretório localhost e ponha arquivos");
        }
        // se existe executa o servidor
        else
        {
        	ServerSocket socketServidor = null;
        	
            System.out.println("Servidor executando");
            System.out.println(diretorioDoSite.getAbsolutePath());
            
            try
            {
            	// cria o socket servidor na porta 8090 se estiver disponível
            	socketServidor = new ServerSocket(porta);
            	
        		// loop infinito para processar pedidos
        		while (true)
                {
        			// aguarda uma conexão na porta especificada e retorna o socket que irá comunicar com o cliente
        			Socket socket = socketServidor.accept();
        			
        			System.out.println("Servidor: Processando solicitacao de " + socket.getInetAddress().getHostAddress());
        			
        			// cria uma nova thread para cada requisição
        			new Thread(new PedidoHttp(socket, diretorioDoSite)).start();
                }
            }
            catch (IOException e)
            {
            	System.out.println(e);
            }
            
            finally
            {
                try
                {
                	// encerra o socket servidor
					socketServidor.close();
				}
                catch (IOException e)
                {
                	System.out.println(e);
				}
            }
        }
	}
}